#pragma once
#pragma once
#include <stdio.h>
#include <string>

/*事件类，用于输出过程中发生的事件
 * 内含“谁”“什么时候”“在哪里”“对谁”“做了什么”，以格式输出
 * 变量为m_object、m_when、where、m_subject、what
 */

struct Position /*位置，放在events，后面类继续沿用*/
{
	int x;
	int y;
};

class Creature;
class Events
{
public:
	int m_object = 0; /*主语，谁*/

	int m_subject = 0; /*宾语，被怎么了的那个谁*/

	int m_when = 0;			   /*时间，系统时间*/
	Position m_where = {0, 0}; /*方位，分x和y*/

	int m_flag_do = 0;	 /*做了什么事情，这里是1猎食、2繁衍和3死亡*/
	int m_flag_what = 0; /*什么原因或造成了什么影响*/

	int m_species_o = 0; /*主语的种族,1为狼2为羊*/
	int m_species_s = 0; /*宾语的种族，1为狼2为羊*/

	Events();
	/*时地人*/
	Events(int time, Position place, int name, int race);
	~Events();

	/*获取死因*/
	virtual void get(int reason);
	/*获取攻击，应该是被攻击对象和攻击力*/
	void get(Creature &c);
	/*获取繁衍，需要繁衍对象和新生产的对象*/
	void get(Creature &c, int creature);

	void get_specise(int specise);
	void what(); /*事件，描述造成的影响如吃掉了，繁衍了，死了的死因*/
	void show(); /*将上述变量转化成文字段并选择句式输出*/
};
